package com.huyi.web.service.impl;

import java.util.Random;
import java.util.concurrent.Future;

import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Service;

import com.huyi.web.service.DemoAsyncService;

@Service
public class DemoAsyncServiceImpl implements DemoAsyncService {

    public static Random random =new Random();  
    
    @Async  
    public Future<String> doTaskOne() throws InterruptedException {  
        System.out.println("开始做任务一");  
        long start = System.currentTimeMillis();  
        Thread.sleep(random.nextInt(10000));  
        long end = System.currentTimeMillis();  
        System.out.println("完成任务一，耗时：" + (end - start) + "毫秒");  
        return new AsyncResult<String>("任务一完成");  
    }  
  
    @Async  
    public Future<String> doTaskTwo() throws InterruptedException {  
        System.out.println("开始做任务二");  
        long start = System.currentTimeMillis();  
        Thread.sleep(random.nextInt(10000));  
        long end = System.currentTimeMillis();  
        System.out.println("完成任务二，耗时：" + (end - start) + "毫秒");  
        return new AsyncResult<String>("任务二完成");  
    }  
  
    @Async  
    public Future<String> doTaskThree() throws InterruptedException { 
        System.out.println("开始做任务三");  
        long start = System.currentTimeMillis();  
        Thread.sleep(random.nextInt(10000));  
        long end = System.currentTimeMillis();  
        System.out.println("完成任务三，耗时：" + (end - start) + "毫秒");  
        return new AsyncResult<String>("任务三完成");  
    } 
}
